import { initLifecycle } from './initLifecycle'
import { initEvents } from './events'
import { initRender } from './render'
import { initState } from './state'
export function initMixin(Vue) {
    console.log('initMixin 开始')
    // 定义_init方法
    Vue.prototype._init = function (options) {
        const vm = this
        // todo 合并配置 options
        vm.$options = options
        // 生命周期初始化
        initLifecycle(vm)
        // 初始化事件
        initEvents(vm)
        // 初始化render
        initRender(vm)
        // 生命周期钩子 beforeCreate
        // callHook(vm, 'beforeCreate')
        // 初始化 在data/props 前 依赖注入
        // initInjections(vm) // resolve injections before data/props
        // 初始化state
        initState(vm)
        // 初始化 在data/props 后的 依赖提供
        // initProvide(vm) // resolve provide after data/props
        // 声明周期钩子 created 
        // callHook(vm, 'created')
    }
    console.log('initMixin 结束')
}